package org.demo.es.model.entity;

import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 文章表
 * @author moxiaoli
 * @TableName blog_articles
 */
@Data
public class Articles implements Serializable {
    /**
     * 文章ID（主键）
     */
    private Integer id;

    /**
     * 文章标题
     */
    private String title;

    /**
     * 文章封面
     */
    private String image;

    /**
     * 作者ID
     */
    private Integer authorId;

    /**
     * 文章作者
     */
    private String author;

    /**
     * 简介
     */
    private String overview;

    /**
     * 文章正文
     */
    private String content;

    /**
     * 发布日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date publishDate;

    /**
     * 文章分类
     */
    private Integer categoryId;

    /**
     * 文章标签
     */
    private String tags;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format="yyyy-MM-dd HH:mm:ss") // 解决FastJson序列化中无法正确地将其解析为LocalDateTime对象
    private Date updateTime;

    private static final long serialVersionUID = 1L;
}